package com.ms;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;

/**
 * ArrayList, LinkedList , Vector之间的区别 ？
 * 源码上进行对比：
 * 1，arrayList 底层使用数组来实现，该数组的类型是Object ;
 * 2, 扩容使用的是Arrays.copyOf方法
 *3， jdk8 使用 new ArrayList 初始化一个长度为0的数组；
 *
 * Vector底层也是使用数组来实现的，该数组是一个Object数组；
 *
 * arrayList 是非线程安全的,性能更高 ， Vector 是线程安全的 方法修饰符增加了 synchronized，性能略差；
 * 可以类比于 StringBuilder(ArrayList)  StringBuffer(Vector);
 *
 * LinkedList 底层数据结构是双向循环链表；
 * ArrayList（Vector） 查找速度非常快，增加，删除操作非常慢；（由数组的特点来决定的）
 * LinkedList 增加，删除速度非常快， 查找速度慢；（本质上是有双向循环链表来决定的）
 *
 * @author carter
 * create time    2018-08-20
 */
public class TestList {

    public static void main(String[] args) {

        List arrayList = new ArrayList();


        Vector vector = new Vector();

        LinkedList linkedList = new LinkedList();
    }

}
